#! /usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2020-03-31 21:34
# @Author : youngchaolin

# 练习1
# 在如下内容上，以a+模式添加"卧梅又闻花"，然后从最开始将原内容读取出来
# 葫芦娃，葫芦娃，
# 一根藤上七个瓜
# 风吹雨打，都不怕，
# 啦啦啦啦。


with open('葫芦娃',encoding='utf-8',mode='a+') as f1:
    f1.write('\n卧梅又闻花')
    # 光标移动到最前面
    f1.seek(0)
    # 光标移动到最后面，2就是文件尾
    # f1.seek(0,2)
    content=f1.read()
    # 退回5个字符，读取原文件内容
    print(content[:-5])

# 练习2
# 文件price.txt中的内容，每一行内容分别为商品名 价钱 个数
# apple 10 3
# benz 200000 1
# mac 8888 2
# acer 4500 3
# chicken 10 5

# 通过代码，构建成这种数据类型 [{'name':'apple','price':10,'amount':3},{'name':'benz','price':200000,'amount':1},...]，并计算总价
li=[]
with open('price.txt',encoding='utf-8',mode='r') as f1:
    for line in f1:
        data=line.split(' ')
        name=data[0]
        price=int(data[1])
        amount=int(data[2].strip())
        # 添加到字典
        # 以下两张方法都可以
        # dic={}
        # dic['name']=name
        # dic['price']=price
        # dic['amount']=amount
        dic={'name':name,'price':price,'amount':amount}
        # 添加到列表
        li.append(dic)
print(li)

# 统计总价
sum=0
for item in li:
    sum+=item.get('price')*item.get('amount')
print('商品总价为{}'.format(sum))

# 以上方法还可以修改
print('-----修改后的方法-----')
li=[]
li_name=['name','price','amount'] # 如果原文件增加一列，只需要在这里添加key就可以，其他不用修改
with open('price.txt',encoding='utf-8',mode='r') as f1:
    for line in f1:
        # key和value一一对应的数据都准备好了
        item_list=line.strip().split()
        dic = {}
        # 循环，生成字典
        for index in range(len(li_name)):
            dic[li_name[index]]=item_list[index]
        li.append(dic)
print(li)


